package com.example.springaopdemo.proxy;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;


//动态代理类的增强功能
public class JDKInvocationHandler implements InvocationHandler {

    //目标对象/被代理对象
    private Object target;

    public JDKInvocationHandler(Object target){
        this.target=target;
    }


    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        //代理类增强内容
        System.out.println("我是中介，开始代理");
        //反射调用被代理类的方法
        Object retVal=method.invoke(target,args);
        //代理类增强内容
        System.out.println("我是中介,结束代理");
        return retVal;
    }
}
